/**
 * 
 */
package com.wisdytech.linkdcs.equipment.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.common.bean.StandardResult;
import com.wisdytech.linkdcs.equipment.model.Equipment;

/**
 * <p>
 * ClassName: IEquipmentRegisteredService
 * </p>
 * <p>
 * Description: 设备注册页面业务接口
 * </p>
 * <p>
 * Author: kongming
 * </p>
 * <p>
 * Date: 2017-9-29
 * </p>
 */
public interface IEquipmentRegisteredService {
    /**
     * <p>Description: 分页获取设备注册列表</p>
     * @param emModel 设备类别编号
     * @param equipCode 设备编号
     * @param equipName 设备名称
     * @return 设备注册列表
     */
    public PageInfo<Equipment> listEquipmentRegisterByFilter(String emModel, String equipCode, String equipName, Filter filter);
    
    /**
     * 
     * <p>Description: 新增设备</p>
     * @param loginName 当前登录用户名
     * @param equipment 设备对象
     * @return 结果集
     */
    public StandardResult addEquipment(Equipment equipment, String loginName);
    /**
     * 修改设备
     * @param equipment 设备对象
     * @param loginName 当前登录用户名
     * @return 结果集
     */
    public StandardResult updateEquipment(Equipment equipment, String loginName);
    /**
     * 通过id查询对应的设备信息
     * @param pkId 主键id
     * @return 设备信息
     */
    public Equipment getEquipmentRegisterById(String pkId);
    /**
     * 通过id删除设备信息
     * @param pkId 设备标识id
     * @return
     */
    public StandardResult delEquipmentById(String pkId,String loginName);
    /**
     * 查询所有的设备信息
     * @param modelId 设备类别id
     * @return 设备列表集合
     */

    public List<Equipment> listAllEquipment(String modelId);
    
    
    /**
     * 查询所有的设备信息
     * @param modelCode 设备类别CODE
     * @return 设备列表集合
     */
    public List<Equipment> listAllEquipmentByModelCode(String modelCode);

    public List<Equipment> listAllEquipmentByOperationId(String operationId, String serach);

    /**
     * 通过设备编号查询对应的设备信息
     * @param equipCode 设备编号
     * @return 设备对象信息
     */
    public Equipment getEquipmentByEquipCode(String equipCode);
    
    /**
     * 
     * <p>Description: 根据设备编号模糊查询设备列表</p>
     * @param filter
     * @param code
     * @return
     */
    public PageInfo<Equipment> searchEquipmentByCode(Filter filter,String code);
    
    /**
     * 
     * @param clientId
     * @return
     */
    public List<Equipment> selectByCilentId(String clientId);
    /**
     * 通过设备id查询对应的设备信息
     * @param equipId 设备id
     * @return 设备信息
     */
    public Equipment getEquipmentByEquipId(String equipId);

	public Equipment equipCodeChangeByeqCode(String equipCode);
	
	/***
	 * 模糊匹配查询指定类型的设备
	 * @param search
	 * @param equipCode 生产类设备id
	 * @return
	 */
	public PageInfo<Equipment> searchEquipByType(Filter filter,String search,String type,String equipCode);
	
	/**
	 * 删除辅助类设备
	 * @param equipCode
	 * @param aidEquipCode
	 */
	public void delAidEquip(String equipCode,String aidEquipCode);
   

}
